package com.gitee.l0km.casban.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.gitee.l0km.common.spring.core.annotation.AliasFor;

/**
 * 指定该类为用于类扫描的顶级包名定位
 * @author guyadong
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.ANNOTATION_TYPE})
public @interface CasbanBasepackage {
	/**
	 * Alias for {@link #level}.
	 */
	@AliasFor(AnnotationFieldNames.LEVEL)
	int value() default 0;
	/**
	 * Alias for {@link #value}.
	 * <p>package parent level for top package based by annotated class's package,
	 * for example, for {@code org.my.pkg.ClassA}
	 * <ul>
	 * <li>0  base package is  'org.my.pkg'</li>
	 * <li>1  base package is  'org.my'</li>
	 * </ul>
	 * Ignored if less than 0
	 */
	@AliasFor(AnnotationFieldNames.VALUE)
	int level() default 0;
}
